Golang
因為對於web比較熟的關係,還是希望使用golang來做點web相關的事情,如果是寫php的朋友,在一開始都需要安裝apache來跑php,但如果是使用golang的話,我們就可以省略這個步驟,直接來玩看看
Golang本身就包含net/http 套件,只需要在import引用就可以,但要注意的是,如果先前都是使用golang online來練習的朋友,可能就需要先安裝golang了,尤其後面還需要建置view html檔案等,這部分就是線上編輯器無法支援的。
依照慣例直接來看個hello world吧!
package main
import (
"fmt"
"net/http"
)
func indexHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "hello world")
}
func main() {
http.HandleFunc("/", indexHandler)
http.ListenAndServe(":8000", nil)
}
然後跑一下專案 go run 之後在瀏覽器中輸入http://localhost:8000/
這裡的ListenAndServe,我寫8000是使用8000port,想改什麼數字的就自行改變,但唯一要注意程式碼與網址的數字要相同,以及有些常用的port號可能會被別的軟體之類使用(apache會遇到這種問題,但golang會不會我不確定,但目前個人猜測應該是不會受影響)。
就可以看到hello world囉
所以真的不用安裝apache
如果我們要抓路由怎麼做呢?
package main
import (
"fmt"
"net/http"
)
func indexHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, world!\n")
}
func echoHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, r.URL.Path)
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/hello", indexHandler)
mux.HandleFunc("/", echoHandler)
http.ListenAndServe(":8000", mux)
}
參考資料
https://pkg.go.dev/net/http